#--------------------------------------------------------------------
#Klassen zur Haltung der Daten (ohne ProgrammLogik)
#--------------------------------------------------------------------

from ContainerClasses import *


#--------------------------------------------------------------------
#Basis Klassen
#--------------------------------------------------------------------
class DescriptionBase(object):
    def __init__(self, Bezeichner,Beschreibung): 
        self.Beschreibung = Beschreibung
        self.Bezeichner = Bezeichner

class TextBase(object):
    def __init__(self, Text):
        self.Text = Text 

#--------------------------------------------------------------------
#Spezifische Klassen
#--------------------------------------------------------------------
class Lerneinheit(object):
    def __init__(self,Termin,Bezeichner):
        self.Nummer = 0
        self.Termin = Termin
        self.Bezeichner = Bezeichner     
        self.AbschnittList = []
        self.MarkenList = []

    def AddAbschnitt(self, lv):
        self.AbschnittList.append(lv)
    def RemoveAbschnitt(self, lv):
        for b in self.AbschnittList:
            if b.Bezeichner == lv:
                self.AbschnittList.remove(b)
            
    def AddMarke(self,Bezeichnung):
        self.MarkenList.append(Bezeichnung)
    def RemoveMarke(self,Bezeichnung):
        self.MarkenList.remove(Bezeichnung)

    #def __repr__(self):
    #    return repr((self.Nummer, self.Bezeichner, self.Termin))



class Frage(TextBase):
    def __init__(self,Text):
        TextBase.__init__(self,Text)
        self.Antwort = None
    def SetAntwort(self,antwort):
        self.Antwort = antwort
    def RemoveAntwort(self):
        self.Antwort = None

class Antwort(TextBase):
    pass

 

class LehrVeranstaltung(DescriptionBase): 
   
    def __init__(self, Bezeichner,Beschreibung): 
        DescriptionBase.__init__(self,Bezeichner,Beschreibung)
        self.LerneinheitListe = []           
    def Add(self, lv):
        self.LerneinheitListe.append(lv)
    def Remove(self, lv):
        self.LerneinheitListe.remove(lv)

class Marke(DescriptionBase):
    def __init__(self,Beschreibung,Bezeichner):
          DescriptionBase.__init__(self,Bezeichner,Beschreibung)
          #self.LerneinheitListe = []
    #def Add(self, lv):
    #    self.LerneinheitListe.append(lv)
    #def Remove(self, lv):
    #    self.LerneinheitListe.remove(lv)

class Thema(DescriptionBase):
    def __init__(self, Bezeichner,Beschreibung): 
        DescriptionBase.__init__(self,Bezeichner,Beschreibung)
        self.Abschnitte = [] 
    def Add(self,abschnitt):
        self.Abschnitte.append(abschnitt)
    def Remove(self,abschnitt):
        self.Abschnitte.remove(abschnitt)

class EinheitAbschnittKey(object):
    def __init__(self, LerneinheitNummer,AbschnittBezeichner): 
        self.LerneinheitNummer = LerneinheitNummer
        self.AbschnittBezeichner = AbschnittBezeichner

class Abschnitt(DescriptionBase):
    def __init__(self, Bezeichner,Beschreibung): 
        DescriptionBase.__init__(self,Bezeichner,Beschreibung)
        self.Fragen = []   
    def AddFrage(self,frage):
        self.Fragen.append(frage)
    def RemoveFrage(self,frage):
        self.Fragen.remove(frage)
  
